package cn.zyl.quartz.service;

import cn.zyl.quartz.bean.JobParameter;
import org.quartz.Trigger;

import java.util.List;

/**
 *  定时任务操作Service
 *  @author zhaoyunlong
 *  2018-12-21
 */
public interface TaskService {

    /**
     * 获取所有定时任务
     * @return
     */
    public List<JobParameter> getAllJob();

    /**
     *  开启所有任务
     */
    public void startAllJob();

    /**
     * 通过任务名，任务组名获取触发器
     * @param trigger   任务名
     * @param triggerGroup  任务组名
     * @return
     */
    public Trigger getTrigger( String trigger, String triggerGroup );

    /**
     * 新增Cron定时任务
     * @param jobParameter
     */
    public void addCronJob( JobParameter jobParameter );

    /**
     * 新增简单任务
     * @param jobParameter
     */
    public void addSimpleJob( JobParameter jobParameter );

    /**
     * 修改定时任务的Cron表达式
     * @param jobParameter
     * @param newCronExpression
     */
    public void modifyJobCron( JobParameter jobParameter , String newCronExpression );

    /**
     *  删除定时任务
     * @param jobParameter
     */
    public void deleteJob( JobParameter jobParameter );

    /**
     *  暂停定时任务
     * @param jobParameter
     */
    public void parseJob( JobParameter jobParameter );

    /**
     * 恢复定时任务
     * @param jobParameter
     */
    public void resumeJob( JobParameter jobParameter );

    /**
     *  暂停所有定时任务
     */
    public void pauseAllJob();

    /**
     * 恢复所有暂停的人任务
     */
    public void resumeAllJob();
}
